package com.fangyibao.agency.utils;

import android.content.Context;

import com.umeng.analytics.MobclickAgent;
import com.wman.sheep.common.utils.AppUtils;

import java.util.HashMap;

/**
 * 友盟统计自定义事件
 */
public class UmengUtils {

    /**
     * 在Application中做的初始化
     */
    public static void initUmeng(Context context) {
        MobclickAgent.setDebugMode(AppUtils.isDebug());//开启调试模式（如果不开启debug运行不会上传umeng统计）
        MobclickAgent.openActivityDurationTrack(false);//禁止默认的页面统计方式，这样将不会再自动统计Activity。
        MobclickAgent.enableEncrypt(true);//6.0.0版本及以后对日志进行加密
        MobclickAgent.setCatchUncaughtExceptions(!AppUtils.isDebug());
        MobclickAgent.setScenarioType(context, MobclickAgent.EScenarioType.E_UM_NORMAL);
    }

    /**
     * 在BaseActivity跟BaseFragmentActivity中的onResume加入
     *
     * @param context
     */
    public static void onResumeToActivity(Context context) {
        if (!AppUtils.isDebug()) {
            MobclickAgent.onPageStart(context.getClass().getName());
            MobclickAgent.onResume(context);
        }
    }

    /**
     * 在BaseActivity跟BaseFragmentActivity中的onPause加入
     *
     * @param context
     */
    public static void onPauseToActivity(Context context) {
        if (!AppUtils.isDebug()) {
            MobclickAgent.onPageEnd(context.getClass().getName());
            MobclickAgent.onPause(context);
        }
    }

    /**
     * 在BaseFragment中的onResume加入
     *
     * @param context
     */
    public static void onResumeToFragment(Context context) {
        if (!AppUtils.isDebug()) {
            MobclickAgent.onPageStart(context.getClass().getName());
        }
    }

    /**
     * 在BaseFragment中的onPause加入
     *
     * @param context
     */
    public static void onPauseToFragment(Context context) {
        if (!AppUtils.isDebug()) {
            MobclickAgent.onPageEnd(context.getClass().getName());
        }
    }

    /**
     * 自定义统计计数事件
     *
     * @param context
     * @param name
     */
    public static void onEvent(Context context, String name) {
        if (AppUtils.isDebug()) {
            return;
        }

        HashMap hashMap = new HashMap<String, String>();
        onEvent(context, name, hashMap);
    }

    public static void onEvent(Context context, String name, String value) {
        if (AppUtils.isDebug()) {
            return;
        }

        HashMap hashMap = new HashMap<String, String>();
        hashMap.put("value", value);
        MobclickAgent.onEventValue(context, name, hashMap, 1);
    }

    public static void onEvent(Context context, String name, HashMap map) {
        if (AppUtils.isDebug()) {
            return;
        }

        MobclickAgent.onEventValue(context, name, map, 1);
    }
}
